In current implementations, distributed switches have ports that can be spread across hundreds of miles, and they provide a full-mesh of non-blocked connectivity between each of its ports. As a result, the configuration of distributed virtual switches can be very complex and demanding. Also, their network topology cannot be dynamically changed on-demand, and it becomes difficult to add or remove individual switches from the configuration without major network and configuration changes.
Moreover, distributed virtual switches currently need single or multiple centralized controllers to work properly. This is because in most current virtual switching implementations, the actual forwarding engine is distributed across multiple hypervisors, while the control plane is centralized, e.g., at a controller. Also, some existing dedicated control mechanisms are needed to push and/or update the configuration between the controller and the forwarding engine. Thus, if the centralized controller is down, then the system as a whole may operate in a degraded mode, or may stop functioning completely.